home *** CD-ROM | disk | FTP | other *** search
/ The PC-SIG Library 9 / The PC-SIG Library on CD ROM - Ninth Edition.iso / 001_100 / DISK0093 / DISK0093.ZIP / FLIPPER.BAS < prev    next >
BASIC Source File  |  1983-08-01  |  6KB  |  123 lines

  1. 10 KEY OFF:CLS
  2. 20 SCREEN 0
  3. 30 WIDTH 40
  4. 40 PRINT"░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░"
  5. 50 PRINT"░┌───────────────────────────────────┐░"
  6. 60 PRINT"░│                                   │░"
  7. 70 PRINT"░│            2070-A.BAS             │░"
  8. 80 PRINT"░│             FLIPPER               │░"
  9. 90 PRINT"░│                                   │░"
  10. 100 PRINT"░│                                   │░"
  11. 110 PRINT"░│ BROUGHT TO YOU BY THE MEMBERS OF  │░"
  12. 120 PRINT"░│      ▄▄▄▄▄ ▄▄▄▄▄ ▄▄▄▄▄ ▄▄▄▄▄      │░"
  13. 130 PRINT"░│        █   █   █ █     █   █      │░"
  14. 140 PRINT"░│        █   █▄▄▄█ █     █   █      │░"
  15. 150 PRINT"░│        █   █     █     █   █      │░"
  16. 160 PRINT"░│      ▄▄█▄▄ █     █▄▄▄▄ █▄▄▄█      │░"
  17. 170 PRINT"░│                                   │░"
  18. 180 PRINT"░│      International PC Owners      │░"
  19. 190 PRINT"░│                                   │░"
  20. 200 PRINT"░│P.O. Box 10426, Pittsburgh PA 15234│░"
  21. 210 PRINT"░│                                   │░"
  22. 220 PRINT"░└───────────────────────────────────┘░"
  23. 230 PRINT"░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░"
  24. 240 PRINT
  25. 250 PRINT "       PRESS ANY KEY TO CONTINUE
  26. 260 A$=INKEY$: IF A$="" THEN 260
  27. 270 WIDTH 80
  28. 280 CLS
  29. 1000 REM <<<<< FLIPPER >>>>> 23 JUN 83
  30. 1010 CLS:FOR I=1 TO 23
  31. 1020 LOCATE I,I+37:PRINT "FLIPPER":LOCATE I,39-I:PRINT "FLIPPER"
  32. 1030 LOCATE 24-I,39-I:PRINT "FLIPPER":LOCATE 24-I,I+37:PRINT "FLIPPER":NEXT I
  33. 1040 LOCATE 12,1:PRINT "A GAME FOR THE `IBM PC'":LOCATE 12,60:PRINT "BY PETER AIRD"
  34. 1050 FOR II=1 TO 10:LOCATE 12,38:PRINT "FLIPPER":FOR I=1 TO 200:NEXT I:LOCATE 12,38:PRINT "       ":FOR I=1 TO 150:NEXT I:NEXT II
  35. 1060 CLS:DEFINT A-X
  36. 1070 DEF SEG=&H40:POKE &H17,PEEK(&H17) OR 64
  37. 1080 GOTO 1100
  38. 1090 LOCATE 1,70:PRINT TIME$:RETURN
  39. 1100 TI=VAL(RIGHT$(TIME$,2)):RANDOMIZE TI:Z=RND(Z)
  40. 1110 LOCATE 20,24,1:PRINT "DO YOU WANT INSTRUCTIONS (Y/N) -";
  41. 1120 D$=INKEY$:IF D$="" THEN 1120
  42. 1130 IF D$="Y" THEN GOSUB 1760
  43. 1140 CLS:N=0:T=0
  44. 1150 LOCATE 5,25:PRINT 1;:PRINT TAB(40) 2;:PRINT TAB(55) 3
  45. 1160 LOCATE 11,25:PRINT 4;:PRINT TAB(40) 5;:PRINT TAB(55) 6
  46. 1170 LOCATE 17,25:PRINT 7;:PRINT TAB(40) 8;:PRINT TAB(55) 9
  47. 1180 FOR I=1 TO 9:Z=INT(RND(Z)*3)+1
  48. 1190 IF Z<2 THEN 1210
  49. 1200 P(I)=0:GOTO 1220
  50. 1210 P(I)=1
  51. 1220 NEXT I
  52. 1230 FOR I=1 TO 9:T=T+P(I):NEXT I
  53. 1240 IF T<1 OR T>7 THEN 1180
  54. 1250 FOR I=1 TO 9:M=I:X=I:GOSUB 1460:NEXT I
  55. 1260 LOCATE 1,34:PRINT "MOVE NUMBER -";N:TIME$="00:00:00"
  56. 1270 GOSUB 1090:LOCATE 21,34:PRINT "YOUR MOVE IS - ";
  57. 1280 M$=INKEY$:IF M$="" THEN GOSUB 1090:GOTO 1280
  58. 1290 M=ASC(M$):M=M-48:IF M<1 OR M>9 THEN 1280
  59. 1300 LOCATE 21,48:PRINT M
  60. 1310 IF P(M)<>1 THEN 1730
  61. 1320 N=N+1:LOCATE 1,47:PRINT N
  62. 1330 ON M GOTO 1340,1350,1360,1370,1380,1390,1400,1410,1420
  63. 1340 X=1:GOSUB 1430:X=2:GOSUB 1430:X=4:GOSUB 1430:X=5:GOSUB 1430:GOTO 1630
  64. 1350 X=2:GOSUB 1430:X=1:GOSUB 1430:X=3:GOSUB 1430:GOTO 1630
  65. 1360 X=3:GOSUB 1430:X=2:GOSUB 1430:X=5:GOSUB 1430:X=6:GOSUB 1430:GOTO 1630
  66. 1370 X=4:GOSUB 1430:X=1:GOSUB 1430:X=7:GOSUB 1430:GOTO 1630
  67. 1380 X=5:GOSUB 1430:X=2:GOSUB 1430:X=4:GOSUB 1430:X=8:GOSUB 1430:X=6:GOSUB 1430:GOTO 1630
  68. 1390 X=6:GOSUB 1430:X=3:GOSUB 1430:X=9:GOSUB 1430:GOTO 1630
  69. 1400 X=7:GOSUB 1430:X=4:GOSUB 1430:X=5:GOSUB 1430:X=8:GOSUB 1430:GOTO 1630
  70. 1410 X=8:GOSUB 1430:X=7:GOSUB 1430:X=9:GOSUB 1430:GOTO 1630
  71. 1420 X=9:GOSUB 1430:X=8:GOSUB 1430:X=5:GOSUB 1430:X=6:GOSUB 1430:GOTO 1630
  72. 1430 IF P(X)=1 THEN 1450
  73. 1440 P(X)=1:GOTO 1460
  74. 1450 P(X)=0
  75. 1460 ON X GOTO 1470,1480,1490,1500,1510,1520,1530,1540,1550
  76. 1470 A=3:B=22:GOTO 1560
  77. 1480 A=3:B=37:GOTO 1560
  78. 1490 A=3:B=52:GOTO 1560
  79. 1500 A=9:B=22:GOTO 1560
  80. 1510 A=9:B=37:GOTO 1560
  81. 1520 A=9:B=52:GOTO 1560
  82. 1530 A=15:B=22:GOTO 1560
  83. 1540 A=15:B=37:GOTO 1560
  84. 1550 A=15:B=52
  85. 1560 IF P(X)<>1 THEN 1600
  86. 1570 LOCATE A,B:PRINT "▄▄▄▄▄▄▄▄▄":LOCATE A+1,B:PRINT "██▀▀▀▀▀██"
  87. 1580 LOCATE A+2,B:PRINT "██":LOCATE A+2,B+7:PRINT "██"
  88. 1590 LOCATE A+3,B:PRINT "██▄▄▄▄▄██":LOCATE A+4,B:PRINT "▀▀▀▀▀▀▀▀▀":RETURN
  89. 1600 LOCATE A,B:PRINT "┌───────┐":LOCATE A+1,B:PRINT "│       │"
  90. 1610 LOCATE A+2,B:PRINT "│ ":LOCATE A+2,B+7:PRINT " │"
  91. 1620 LOCATE A+3,B:PRINT "│       │":LOCATE A+4,B:PRINT "└───────┘":RETURN
  92. 1630 S=0:FOR I=1 TO 9:S=S+P(I):NEXT I
  93. 1640 IF S=0 THEN 1670
  94. 1650 IF S=8 AND P(5)=0 THEN 1710
  95. 1660 GOTO 1270
  96. 1670 LOCATE 23,30:PRINT "SORRY, YOU LOSE..........."
  97. 1680 LOCATE 25,30:PRINT "ANOTHER GAME (Y/N) - ";
  98. 1690 R$=INKEY$:IF R$="" THEN 1690
  99. 1700 IF R$="Y" THEN 1140 ELSE IF R$<>"N" THEN 1690 ELSE CLS:END
  100. 1710 LOCATE 23,30:PRINT "THAT'S IT, YOU WON !!!!!"
  101. 1720 GOTO 1680
  102. 1730 BEEP:LOCATE 23,34:PRINT "- ILLEGAL MOVE -":FOR I=1 TO 400:NEXT I
  103. 1740 LOCATE 23,34:PRINT "                "
  104. 1750 GOTO 1270
  105. 1760 CLS:LOCATE 1,35:PRINT "- FLIPPER -":PRINT
  106. 1770 PRINT "FLIPPER is a puzzle played on a 3 X 3 board using tokens which are WHITE on one":PRINT "side and BLACK on the other."
  107. 1780 PRINT "The playing positions are numbered 1 to 9."
  108. 1790 PRINT "At least one piece is white at the commencement of each game."
  109. 1800 PRINT "The object of the game is to FLIP the tokens until the centre piece is BLACK"
  110. 1810 PRINT "and all the other pieces are WHITE."
  111. 1820 PRINT :PRINT "The board and rules are as follows:-"
  112. 1830 PRINT :PRINT TAB(10)"1   2   3":PRINT :PRINT TAB(10)"4   5   6":PRINT :PRINT TAB(10)"7   8   9"
  113. 1840 LOCATE 12,25:PRINT "1) Only white pieces may be selected."
  114. 1850 LOCATE 14,25:PRINT "2) If a corner piece is selected, as well as FLIPPING":LOCATE 15,28:PRINT "itself, the three adjacent pieces also FLIP."
  115. 1860 LOCATE 16,28:PRINT "For example, FLIP '1' and 2,4 and 5 FLIP too."
  116. 1870 LOCATE 18,25:PRINT "3) Select the middle of a side and the whole side FLIPS"
  117. 1880 LOCATE 20,25:PRINT "4) FLIP '5' and 2,4,6 and 8 will also FLIP."
  118. 1890 LOCATE 22,25:PRINT "5) You LOSE if all tokens become BLACK, you":LOCATE 23,28:PRINT "WIN if all tokens except '5' become WHITE."
  119. 1900 LOCATE 20,1:PRINT "(PRESS ANY KEY)":LOCATE 21,4:PRINT "(TO PLAY)"
  120. 1910 G$=INKEY$:IF G$="" THEN 1910 ELSE RETURN
  121. HITE."
  122. 1900 LOCATE 20,1:PRINT "(PRESS ANY KEY)":LOCATE 21,4:PRINT "(TO PLAY)"
  123. 1910 G$=INKEY$:IF G